package algo3.tp1.ejercicios;

public class Ejercicio2 {
	private Matriz matriz;
	private int n, m, mesetaActual = 0, mesetaMaxima = 0, valorActual;
	private long acumulador = 0;
	
	public void contarMeseta(Celda casilla) {
		acumulador++;

		for (Celda c : matriz.vecinas(casilla)) {
			if (!c.fueVisitada() && c.dameValor() == valorActual) {
				mesetaActual++;
				c.marcar();

				contarMeseta(c);
			}
		}
	}

	public int resolver(Matriz m) {
		acumulador = 0;
		
		matriz = m;
		mesetaMaxima = 0;

		for (Celda c : matriz.celdas()) {
			if (!c.fueVisitada()) {
				acumulador++;
				c.marcar();

				mesetaActual = 1;
				valorActual = c.dameValor();

				contarMeseta(c);
				mesetaMaxima = Math.max(mesetaActual, mesetaMaxima);
			}
		}

		return mesetaMaxima;
	}
}
